package com.tcc.fastline.Domain;

import com.google.gson.Gson;
import com.google.gson.annotations.SerializedName;

public class Endereco {

	@SerializedName("id")
	private int Codigo;
	
	@SerializedName("enderecoComercial")
	private String EnderecoComercial;
	
	@SerializedName("complemento")
	private String Complemento;
	
	@SerializedName("cep")
	private String CEP;
	
	@SerializedName("cidade")
	private String Cidade;
	
	@SerializedName("estado")
	private String Estado;

	public Endereco() {
	}

	public Endereco(String json) {
		try {
			Gson gson = new Gson();
			Endereco endereco = gson.fromJson(json, Endereco.class);

			this.setCEP(endereco.getCEP());
			this.setCidade(endereco.getCidade());
			this.setCodigo(endereco.getCodigo());
			this.setComplemento(endereco.getComplemento());
			this.setEnderecoComercial(endereco.getEnderecoComercial());
			this.setEstado(endereco.getEstado());

		} catch (Exception e) {
			throw new RuntimeException(
					"Erro ao gerar Endereco recebido do webservice, motivo: "
							+ e.getMessage());
		}
	}

	@Override
	public String toString() {
		String json = "";
		try {
			Gson gson = new Gson();
			json = gson.toJson(this);
			
		} catch (Exception e) {
			throw new RuntimeException(
					"Erro ao gerar Endereco para envio ao webservice, motivo: "
							+ e.getMessage());
		}
		return json;
	}

	public boolean isValid() {
		return (this != null
				&& (!this.getCEP().isEmpty())
				&& (this.getCidade() != null && !this.getCidade().isEmpty())
				&& (this.getComplemento() != null && !this.getComplemento().isEmpty())
				&& (this.getEnderecoComercial() != null && !this.getEnderecoComercial().isEmpty()) 
				&& (this.getEstado() != null && !this.getEstado().isEmpty()));
	}
	
	public int getCodigo() {
		return Codigo;
	}

	public void setCodigo(int codigo) {
		this.Codigo = codigo;
	}

	public String getEnderecoComercial() {
		return EnderecoComercial;
	}

	public void setEnderecoComercial(String enderecoComercial) {
		EnderecoComercial = enderecoComercial;
	}

	public String getComplemento() {
		return Complemento;
	}

	public void setComplemento(String complemento) {
		Complemento = complemento;
	}

	public String getCEP() {
		return CEP;
	}

	public void setCEP(String cEP) {
		CEP = cEP;
	}

	public String getCidade() {
		return Cidade;
	}

	public void setCidade(String cidade) {
		Cidade = cidade;
	}

	public String getEstado() {
		return Estado;
	}

	public void setEstado(String estado) {
		Estado = estado;
	}
}
